cmake_minimum_required(VERSION 3.17)
project(lua-protobuf)

# 默认构建类型为 Debug（如果未指定）
if(NOT CMAKE_BUILD_TYPE)
  set(CMAKE_BUILD_TYPE Debug)
endif()

# 设置不同构建类型的输出目录
set(LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/../../bin/luaclib/")

# 添加共享库目标
add_library(pb SHARED pb.c)

# 配置编译选项
target_compile_options(pb PRIVATE
  $<$<CONFIG:Debug>:-g -O0>    # Debug 模式：调试符号 + 无优化
  $<$<CONFIG:Release>:-O3>     # Release 模式：最高优化
)

# 设置输出文件名和路径
set_target_properties(pb PROPERTIES
  PREFIX ""                     # 移除 "lib" 前缀
  OUTPUT_NAME "pb"              # 输出文件名为 pb.so
  LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_DIRECTORY}
)

# 打印调试信息
message(STATUS "构建类型: ${CMAKE_BUILD_TYPE}")
message(STATUS "输出目录: ${LIBRARY_OUTPUT_DIRECTORY}")